package com.software.car.common.utils;

import com.github.pagehelper.PageInfo;
import lombok.*;

import java.util.List;

/**
 * 自定义的分页格式
 *
 * @Author 魔法はまだ解けない
 * @Date 2021/1/21
 */
@Data
@Builder
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class CommonPage {

    /**
     * 当前页号
     */
    private Integer page;

    /**
     * 页面数据量
     */
    private Integer pageSize;

    /**
     * 总页数
     */
    private Integer totalPage;

    /**
     * 总数据量
     */
    private Long count;

    /**
     * 结果集
     */
    private Object list;


    /**
     * 根据分页插件实体，获取需要的数据
     *
     * @param list
     * @return
     */
    public static CommonPage wrap(List<?> list) {
        PageInfo<?> pageInfo = new PageInfo<>(list);

        CommonPage build = CommonPage.builder()
                .page(pageInfo.getPageNum())
                .pageSize(pageInfo.getPageSize())
                .count(pageInfo.getTotal())
                .totalPage(pageInfo.getPages())
                .list(list)
                .build();

        return build;
    }

}
